package jp.yvn.game.shooting.activity;

import jp.yvn.game.shooting.view.Renderer;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;

/**
 * ベースとなるアクティビティです。
 * 
 * @author Yvn_pq
 * 
 */
public class BaseActivity extends Activity {

	/** Option Menu Finish */
	protected static final int MENU_ID_FINISH = (Menu.FIRST + 1);

	/** Option Menu Pause */
	protected static final int MENU_ID_PAUSE = (Menu.FIRST + 2);

	/** bgm */
	protected MediaPlayer mTopBgm;

	/** BgmId */
	private int mBgmId = 0;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		// フルスクリーンにします
		// getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
		// getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

		// タイトルを消します
		requestWindowFeature(Window.FEATURE_NO_TITLE);
	}

	@Override
	protected void onResume() {
		// BGBを再生します
		startBgm();
		super.onResume();
	}

	@Override
	protected void onPause() {
		// BGBを停止します
		stopBgm();
		super.onPause();
	}

	/**
	 * BGMを設定します
	 * 
	 * @param bgmId
	 */
	protected void setBgm(int bgmId) {
		mBgmId = bgmId;
	}

	/**
	 * BGMを再生します
	 * 
	 * @param resId
	 */
	protected void startBgm() {
		if (0 < mBgmId) {
			mTopBgm = MediaPlayer.create(getApplicationContext(), mBgmId);
			mTopBgm.setLooping(true);
			mTopBgm.start();
		}
	}

	/**
	 * BGMを停止します
	 * 
	 * @param resId
	 */
	protected void stopBgm() {
		if (mTopBgm != null) {
			mTopBgm.stop();
			mTopBgm.release();
			mTopBgm = null;
		}
	}

	/*
	 * レイアウトを設定します
	 * 
	 * @see android.app.Activity#setContentView(int)
	 */
	@Override
	public void setContentView(int layoutResID) {
		super.setContentView(layoutResID);
	}

	/*
	 * オプションメニューのイベント処理を行います
	 * 
	 * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
	 */
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		// End
		case MENU_ID_FINISH:
			finish();
			break;
		// Pause
		case MENU_ID_PAUSE:
			Renderer.isPause = true;
			break;
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}

}